package Array;

/**
 * @author maple on 2019/11/27 10:33.
 * @version v1.0
 * @see 1040441325@qq.com
 * 717. 1比特与2比特字符
 * 有两种特殊字符。第一种字符可以用一比特0来表示。第二种字符可以用两比特(10 或 11)来表示。
 *
 * 现给一个由若干比特组成的字符串。问最后一个字符是否必定为一个一比特字符。给定的字符串总是由0结束。
 *
 * 示例 1:
 *
 * 输入:
 * bits = [1, 0, 0]
 * 输出: True
 * 解释:
 * 唯一的编码方式是一个两比特字符和一个一比特字符。所以最后一个字符是一比特字符。
 * 示例 2:
 *
 * 输入:
 * bits = [1, 1, 1, 0]
 * 输出: False
 * 解释:
 * 唯一的编码方式是两比特字符和两比特字符。所以最后一个字符不是一比特字符。
 */
public class IsOneBitCharacter {
    public boolean isOneBitCharacter(int[] bits) {
        int last = -1;//last记录,一比特为的最近一条的位置
        for (int i = 0; i < bits.length; i++) {
            if (bits[i] == 1) ++i;//当前为＝1，跳过下一位,
            else last = i;
        }
        // 判断最后一个一比特为在不在末尾即可
        return last == bits.length-1;
    }

}
